One-time programmable (OTP) elements such as fuses and antifuses have been used in a variety of semiconductor applications. For example, arrays of OTP elements have been used in read only memories (ROMs) for circuit trimming and other uses. When fuse elements are utilized, the device is programmed by blowing fusible links at selected nodes to create open circuits. When antifuse elements are utilized, the device is programmed by creating a short circuit or a low resistance path in a previously open circuit.
A typical antifuse element includes an insulating dielectric layer, such as a gate oxide, between two conducting layers. The unprogrammed state of an antifuse element is an open circuit with intact dielectric. Programming an antifuse creates a shorting path at a damaged point, known as the rupture point, in the dielectric/gate oxide formed by applying a voltage and/or current higher than the dielectric rupture voltage and/or current.
One issue with such antifuses is the time needed to program each antifuse. For example, a typical antifuse can require current to be applied for 10s or even 100s of milliseconds to reliably create a shorting path and program the antifuse. In devices that include large arrays of antifuses, the overall time required to program such a large array can be excessive, leading to decreased production rates and/or increased device costs.
Another issue with such antifuses is reliability. To be effective the programming technique used needs a very high rate of reliability. For example, it is desirable that programming of antifuses result in relatively low resistance variation in the programmed antifuses. Such variation can otherwise negatively impact the performance of the array and the associated device.